home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / HAMRADIO / LOGBOOK.ZIP / LOGSTAT.PRG < prev    next >
Text File  |  1987-07-29  |  17KB  |  441 lines

  1. *LOGSTAT 860514 COPYRIGHT (c) Joe Kasser G3ZCZ 1986
  2. * GENERATES STATISTICS ABOUT CONTACTS
  3.  
  4. STORE 0 TO qslex
  5. STORE 0 TO qslrxcount
  6. STORE 0 TO qsltxcount
  7. STORE 0 TO qslowed
  8. STORE 0 TO qsldirect
  9. STORE 0 TO qslbureau
  10. STORE 0 TO qslmngr
  11. STORE 0 TO qsonumber
  12. STORE 0 TO six
  13. STORE 0 TO ten
  14. STORE 0 TO fifteen
  15. STORE 0 TO twenty
  16. STORE 0 TO forty
  17. STORE 0 TO eighty
  18. STORE 0 TO onesixty
  19. STORE 0 TO thirty
  20. STORE 0 TO twentyfour
  21. STORE 0 TO seventeen
  22. STORE 0 TO modesstv
  23. STORE 0 TO two
  24. STORE 0 TO whatisit
  25. STORE 0 TO modessb
  26. STORE 0 TO modecw
  27. STORE 0 TO modertty
  28. STORE 0 TO modefm
  29. STORE 0 TO modea
  30. STORE 0 TO modeb
  31. STORE 0 TO modej
  32. STORE T TO joe
  33. STORE 0 TO modeamtor
  34. STORE 0 TO modepacket
  35.  
  36. DO WHILE joe
  37.    IF joe
  38.       USE &logbook
  39.       GOTO BOTTOM
  40.       STORE # TO lastqso
  41.       ERASE
  42.       @ 1,10 SAY 'G3ZCZ LOG SUMMARY PROGRAM Version 1.2'
  43.       @ 4,1 SAY 'QSL SUMMARY'
  44.       @ 5,1 SAY '--------------------------------'
  45.       @ 6,1 SAY 'TOTAL NUMBER OF CONTACTS'
  46.       @ 2,30 SAY lastqso
  47.       @ 2,41 SAY 'ENTRIES IN LOG FILE '
  48.       ?? logbook
  49.       @ 7,1 SAY 'QSL CARDS SENT DIRECT'
  50.       @ 8,1 SAY 'QSL CARDS SENT VIA BUREAU'                                 
  51.       @ 9,1 SAY 'QSL CARDS SENT VIA MANAGERS '
  52.       @ 10,1 SAY 'QSL CARDS SENT '
  53.       @ 11,1 SAY 'QSL CARDS RECEIVED'
  54.       @ 12,1 SAY 'QSL CARDS OWED'
  55.       @ 13,1 SAY 'QSL CARDS EXCHANGED'
  56.       @ 4,40 SAY 'SUMMARY OF ENTRIES BY BAND'
  57.       @ 5,40 SAY '----------------------------------------'
  58.       @ 6,40 SAY '10  METERS'
  59.       @ 7,40 SAY '12  METERS'
  60.       @ 8,40 SAY '15  METERS'
  61.       @ 9,40 SAY '17  METERS'
  62.       @ 10,40 SAY '20  METERS'
  63.       @ 11,40 SAY '30  METERS'
  64.       @ 12,40 SAY '40  METERS'
  65.       @ 13,40 SAY '80  METERS'
  66.       @ 14,40 SAY '160 METERS'
  67.       @ 15,40 SAY ' 6  METERS'
  68.       @ 16,40 SAY ' 2  METERS'
  69.       @ 17,40 SAY 'OSCAR MODE A'
  70.       @ 18,40 SAY 'OSCAR MODE B '
  71.       @ 19,40 SAY 'OSCAR MODE J'
  72.       @ 20,40 SAY 'OTHERS'
  73.  
  74.       @ 15,1 SAY 'REPORT BY MODES'
  75.       @ 16,1 SAY '----------------------------'
  76.       @ 17,1 SAY 'SSB CONTACTS'
  77.       @ 18,1 SAY 'CW CONTACTS'
  78.       @ 19,1 SAY 'RTTY CONTACTS'
  79.       @ 20,1 SAY 'FM CONTACTS'
  80.       @ 21,1 SAY 'SSTV CONTACTS'
  81.       @ 22,1 say 'AMTOR CONTACTS'
  82.       @ 23,1 SAY 'PACKET CONTACTS'
  83.  
  84.       IF qsltxcount = 0                
  85.       ELSE
  86.          @ 10,27 SAY qsltxcount        
  87.       ENDIF                                              
  88.       IF qslbureau = 0                 
  89.       ELSE                             
  90.         @ 8,27 SAY qslbureau           
  91.       ENDIF                                          
  92.       IF qsldirect = 0                 
  93.       ELSE                             
  94.          @ 7,27 SAY qsldirect          
  95.       ENDIF
  96.       IF qslmngr = 0                   
  97.       ELSE
  98.          @ 9,27 SAY qslmngr            
  99.       ENDIF                                                  
  100.       IF qslrxcount = 0                
  101.       ELSE                             
  102.          @ 11,27 SAY qslrxcount        
  103.       ENDIF                                                     
  104.       IF qslowed = 0                   
  105.       ELSE                             
  106.          @ 12,27 SAY qslowed           
  107.       ENDIF
  108.       IF qslex = 0                     
  109.       ELSE
  110.          @ 13,27 SAY qslex             
  111.       ENDIF                                           
  112.       IF ten = 0                       
  113.       ELSE                             
  114.          @ 6,60 SAY ten                
  115.       ENDIF                                         
  116.       IF fifteen = 0                   
  117.       ELSE                             
  118.          @ 8,60 SAY fifteen            
  119.       ENDIF
  120.       IF twenty = 0                    
  121.       ELSE
  122.          @ 10,60 SAY twenty            
  123.       ENDIF                                                
  124.       IF forty = 0                     
  125.       ELSE                             
  126.          @ 12,60 SAY forty             
  127.       ENDIF                                         
  128.       IF eighty = 0                    
  129.       ELSE                             
  130.          @ 13,60 SAY eighty            
  131.       ENDIF
  132.       IF onesixty = 0                  
  133.       ELSE
  134.          @ 14,60 SAY onesixty          
  135.       ENDIF                                                
  136.       IF two = 0                       
  137.       ELSE                             
  138.          @ 16,60 SAY two               
  139.       ENDIF                                         
  140.       IF six = 0                       
  141.       ELSE                             
  142.          @ 15,60 SAY six               
  143.       ENDIF
  144.       IF twentyfour = 0                
  145.       ELSE
  146.          @  7,60 SAY twentyfour        
  147.       ENDIF                                         
  148.       IF seventeen = 0                  
  149.       ELSE                             
  150.          @ 9,60 SAY seventeen           
  151.       ENDIF                                          
  152.       IF thirty = 0                    
  153.       ELSE                             
  154.          @ 11,60 SAY thirty            
  155.       ENDIF
  156.       IF modea = 0                     
  157.       ELSE
  158.          @ 17,60 SAY modea             
  159.       ENDIF                                         
  160.       IF modeb = 0                     
  161.       ELSE                             
  162.          @ 18,60 SAY modeb             
  163.       ENDIF                                         
  164.       IF modej = 0                     
  165.       ELSE                             
  166.          @ 19,60 SAY modej             
  167.       ENDIF
  168.       IF whatisit  = 0
  169.       ELSE
  170.          @ 20,60 SAY whatisit
  171.       ENDIF
  172.       IF modessb = 0                   
  173.       ELSE                             
  174.          @ 17,21 SAY modessb           
  175.       ENDIF                                         
  176.       IF modecw = 0                    
  177.       ELSE                             
  178.          @ 18,21 SAY modecw            
  179.       ENDIF
  180.       IF modertty = 0
  181.       ELSE
  182.          @ 19,21 SAY modertty
  183.       ENDIF
  184.       IF modefm = 0
  185.       ELSE
  186.          @ 20,21 SAY modefm
  187.       ENDIF
  188.       IF modesstv = 0
  189.       ELSE
  190.          @ 21,21 SAY modesstv
  191.       ENDIF
  192.       IF modeAMTOR = 0
  193.       ELSE
  194.          @ 22,21 SAY modemtor
  195.       ENDIF
  196.       IF modepacket = 0
  197.       ELSE
  198.          @ 23,21 SAY modepacket
  199.       ENDIF
  200.       GOTO TOP
  201.       DO WHILE .NOT. EOF
  202.          @ 2,1  SAY call
  203.          @ 2,12 SAY date
  204.          @ 2,22 SAY time
  205.  
  206.          * don't count contest title entries
  207.          IF $(call,1,1) = '-'
  208.          ELSE
  209.             STORE qsonumber + 1 TO qsonumber
  210.             @ 6,27 SAY qsonumber
  211.             IF qslsent = '-'  .OR. qslsent = 'X' .OR. qslsent =  'N' 
  212.             ELSE                                                     
  213.                STORE qsltxcount + 1 TO qsltxcount                    
  214.                @ 10,27 SAY qsltxcount                                
  215.             ENDIF
  216.                                                                      
  217.             IF qslrx = '-'
  218.                * sum cards owed only                                 
  219.                IF qslsent = 'B'                                      
  220.                   STORE qslbureau + 1 TO qslbureau                   
  221.                   @ 8,27 SAY qslbureau                               
  222.                ENDIF                                                 
  223.                IF qslsent = 'D'                                      
  224.                   STORE qsldirect + 1 TO qsldirect                   
  225.                   @ 7,27 SAY qsldirect                               
  226.                ENDIF                                                 
  227.                IF qslsent = 'M'
  228.                   STORE qslmngr + 1 TO qslmngr                       
  229.                   @ 9,27 SAY qslmngr
  230.                ENDIF                                                        
  231.             ELSE                                                            
  232.                STORE qslrxcount + 1 TO qslrxcount                           
  233.                @ 11,27 SAY qslrxcount                                       
  234.                IF qslsent = '-'                                      
  235.                   STORE qslowed + 1 TO qslowed                       
  236.                   @ 12,27 SAY qslowed                                
  237.                ELSE                                                  
  238.                   STORE qslex + 1 TO qslex                           
  239.                   @ 13,27 SAY qslex
  240.                ENDIF                                                 
  241.             ENDIF
  242.                                                                      
  243.             DO CASE                                                  
  244.                                                                             
  245.                CASE band = '10'                                             
  246.                     STORE ten + 1 TO ten                             
  247.                     @ 6,60 SAY ten                                   
  248.                                                                             
  249.                CASE band = '15'                                             
  250.                     STORE fifteen + 1 TO fifteen                            
  251.                     @ 8,60 SAY fifteen
  252.                                                                      
  253.                CASE band = '20'
  254.                     STORE twenty + 1 TO twenty                              
  255.                     @ 10,60 SAY twenty                                      
  256.                                                                             
  257.                CASE band = '40'                                             
  258.                     STORE forty + 1 TO forty                         
  259.                     @ 12,60 SAY forty                                
  260.                                                                             
  261.                CASE band = '75'                                             
  262.                     STORE eighty + 1 TO eighty                              
  263.                     @ 13,60 SAY eighty
  264.                     * 75 and 80 Meters are part of same band         
  265.  
  266.                CASE band = '80'                                             
  267.                     STORE eighty + 1 TO eighty                              
  268.                     @ 13,60 SAY eighty                                      
  269.                                                                      
  270.                CASE band = '160'                                     
  271.                     STORE onesixty + 1 TO onesixty                   
  272.                     @ 14,60 SAY onesixty                                    
  273.                                                                             
  274.                CASE band = '2'                                       
  275.                     STORE two + 1 TO two
  276.                     @ 16,60 SAY two                                  
  277.  
  278.                CASE band = '6'                                       
  279.                     STORE six + 1 TO six                             
  280.                     @ 15,60 SAY six                                  
  281.                                                                      
  282.                CASE band = '12'                                      
  283.                     STORE twentyfour + 1 TO twentyfour               
  284.                     @  7,60 SAY twentyfour                           
  285.                                                                      
  286.                CASE band = '17'                                      
  287.                    STORE seventeen + 1 TO seventeen
  288.                    @ 9,60 SAY seventeen                               
  289.  
  290.                CASE band = '30'                                      
  291.                     STORE thirty + 1 TO thirty                       
  292.                     @ 11,60 SAY thirty                               
  293.                                                                      
  294.                CASE band = 'A'                                       
  295.                     STORE modea + 1 TO modea                         
  296.                     @ 17,60 SAY modea                                
  297.                                                                      
  298.                CASE band = 'B'                                       
  299.                     STORE modeb + 1 TO modeb
  300.                     @ 18,60 SAY modeb                                
  301.  
  302.                CASE band = 'J'                                       
  303.                     STORE modej + 1 TO modej                         
  304.                     @ 19,60 SAY modej                                
  305.                                                                      
  306.             OTHERWISE                                                
  307.                IF $(call,1,1) = '-'                                  
  308.                ELSE                                                  
  309.                   STORE whatisit  + 1 TO whatisit                    
  310.                   @ 20,60 SAY whatisit                               
  311.                ENDIF
  312.  
  313.             ENDCASE
  314.                                                                      
  315.             DO CASE                                                  
  316.                                                                      
  317.                CASE mode = 'SSB'                                     
  318.                     STORE modessb + 1 TO modessb                     
  319.                     @ 17,21 SAY modessb                              
  320.                                                                      
  321.                CASE mode = 'CW'                                      
  322.                     STORE modecw + 1 TO modecw                       
  323.                     @ 18,21 SAY modecw
  324.  
  325.                CASE mode = 'RTTY'
  326.                     STORE modertty + 1 TO modertty
  327.                     @ 19,21 SAY modertty
  328.  
  329.                CASE mode = 'FM'
  330.                     STORE modefm + 1 TO modefm
  331.                     @ 20,21 SAY modefm
  332.  
  333.                CASE mode = 'SSTV'
  334.                     STORE modesstv + 1 TO modesstv
  335.                     @ 21,21 SAY modesstv
  336.  
  337.                CASE mode = 'AMTR'
  338.                     STORE modeamtor +1 TO modeamtor
  339.                     @ 22,21 SAY modeamtor
  340.  
  341.                CASE mode = 'PCKT'
  342.                     STORE modepacket +1 TO modepacket
  343.                     @ 23,21 SAY modepacket
  344.             ENDCASE
  345.          ENDIF
  346.          SKIP
  347.       ENDDO
  348.       @ 23,1 SAY ' '
  349.       ACCEPT 'Do you want to add another log file (Y/N) ? ' TO df
  350.       IF $(df,1,1) = 'Y'
  351.          @ 23,1 SAY ' '
  352.          ACCEPT 'What is the name of the new logbook (D:NAME) ? ' TO logbook
  353.          IF FILE(logbook)
  354.          ELSE
  355.             STORE F TO joe
  356.             ? 'ERROR LOG FILE DOES NOT EXIST'
  357.             WAIT
  358.          ENDIF
  359.       ELSE
  360.         STORE F TO joe                                                      
  361.       ENDIF
  362.    ENDIF
  363. ENDDO
  364. ERASE                                                                    
  365.  
  366. * print summary
  367. STORE ' ' TO df
  368. ACCEPT ' Do you want hard copy of summary (Y/N) ? ' TO df
  369. IF $(df,1,1) = 'Y'
  370.    SET PRINT ON
  371. ENDIF
  372.  
  373. ? 'QSL SUMMARY'
  374. ?
  375. ? 'TOTAL NUMBER OF CONTACTS    '
  376. ?? qsonumber
  377. ? 'QSL CARDS SENT DIRECT       '
  378. ?? qsldirect
  379. ? 'QSL CARDS SENT VIA BUREAU   '
  380. ?? qslbureau
  381. ? 'QSL CARDS SENT VIA MANAGERS '
  382. ?? qslmngr
  383. ? 'QSL CARDS SENT              '
  384. ?? qsltxcount
  385. ? 'QSL CARDS RECEIVED          '
  386. ?? qslrxcount
  387. ? 'QSL CARDS OWED              '
  388. ?? qslowed
  389. ? 'QSL CARDS EXCHANGED         ',qslex
  390. ?
  391. ?
  392. ? 'SUMMARY OF ENTRIES BY BAND'
  393. ?
  394. ? '10 METERS                  ',ten
  395. ? '12 METERS                  ',twentyfour
  396. ? '15 METERS                  ',fifteen
  397. ? '17 METERS                  ',seventeen
  398. ? '20 METERS                  ',twenty
  399. ? '30 METERS                  ',thirty
  400. ? '40 METERS                  ',forty
  401. ? '80 METERS                  ',eighty
  402. ? '160 METERS                 ',onesixty
  403. ? ' 6 METERS                  ',six
  404. ? ' 2 METERS                  ',two
  405. ? 'OSCAR MODE A               ',modea
  406. ? 'OSCAR MODE B               ',modeb
  407. ? 'OSCAR MODE J               ',modej
  408. ? 'OTHERS                     ',whatisit
  409. ?
  410. ?
  411. ? 'REPORT BY MODES'
  412. ?
  413. ? 'SSB          ',modessb
  414. ? 'CW           ',modecw
  415. ? 'RTTY         ',modertty
  416. ? 'FM           ',modefm
  417. ? 'SSTV         ',modesstv
  418. ? 'AMTOR        ',modeamtor
  419. ? 'PACKET       ',modepacket
  420.  
  421. EJECT
  422. SET PRINT OFF
  423. USE
  424. ?
  425. ?
  426. WAIT
  427. RELEASE modeamtor,modepacket
  428. RELEASE qslrxcount,qsltxcount,qslowed,qsldirect,qslbureau,qslmngr
  429. RELEASE df,qsonumber,ten,fifteen,twenty,forty,eighty,two,whatisit
  430. RELEASE modessb,modecw,modertty,modefm,onesixty,modea,modeb,modej
  431. RELEASE joe,lastqso,qslex,six,modesstv,thirty,seventeen,twentyfour
  432. RETURN
  433.  RWISE                                                
  434.                IF $(call,1,1) = '-'                                  
  435.                ELSE                                                  
  436.                   STORE whatisit  + 1 TO whatisit                    
  437.                   @ 20,60 SAY whatisit                               
  438.                ENDIF
  439.  
  440.             ENDCASE
  441.